home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / ad.arc / ADEDIT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-19  |  15.6 KB  |  344 lines

  1. 10  DEF SEG = &H40:POKE &H17, PEEK(&H17) AND 223
  2. 100  ARR$=CHR$(17)+CHR$(196)+CHR$(217)
  3. 110  DIM D$(13),V$(16),Q$(13),B$(13),LS%(13),NOTE$(20),NKEY$(20),AZ$(3),AZ(3),W(13),D(16),V1$(16),Z(3),G$(6)
  4. 115  ST$="stopStopSTOP"
  5. 120  O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:EDIT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE/CONT":NKEY$(1)=""
  6. 130  FOR I=1 TO 13:READ Q$(I):NEXT:FOR I=1 TO 6:READ G$(I):NEXT
  7. 140  FOR I=1 TO 13:READ LS%(I):NEXT
  8. 150  FOR I=1 TO 13:READ W(I):NEXT
  9. 160  DATA "NAME - SURNAME: ","NAME - FIRST:   ","TITLE:          ","COMPANY:        ","STREET:         ","CITY:           ","STATE:          ","ZIPCODE:        ","     HOME:      ","   OFFICE:      ","BIRTHDAY:       ","NOTE:           ","TELEPHONE:"
  10. 165  DATA "Dr. ","Mr. ","Mrs. ","Ms. ","Miss ","Prof. "
  11. 170  DATA 15,15,30,30,30,15,2,10,12,12,8,60,12
  12. 180  DATA 2,1,12,3,4,5,6,7,10,11,8,9,13
  13. 190  ON ERROR GOTO 1940
  14. 200  REM
  15. 290  REM         TEMPORARY FILE
  16. 295  OPEN "TEMPOR.TEM" FOR INPUT AS #1
  17. 296  INPUT #1,  FILE$,FILM$,FIL$:CLOSE #1:DIM ZK(40)
  18. 300  OPEN FILM$ FOR INPUT AS #3
  19. 310  INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3:ZTEST=0
  20. 312  FOR I= 1 TO 26:ZTEST=ZK(I)+ZTEST:NEXT
  21. 315  OPEN FILE$ AS #4 LEN = 356
  22. 320  FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
  23. 322  IF Y$="G" OR Y$="C" THEN NRED=999:YNEW=1:GOSUB 6000:GOTO 1320
  24. 325  KNN=NN+1:GET #4, NN+1:KSET=VAL(V$(16)):GET #4,KSET:KEND=VAL(V$(15))
  25. 340  NRED=999:GOSUB 6000:GOTO 960
  26. 350  GOSUB 5100:GOSUB 6000:GOTO 960
  27. 390  IF ADD=999 THEN NN=I-1 :ADD=0:ED$=" " ELSE 970
  28. 400  A$="DELETE":Y1=3:GOTO 425
  29. 405  A$="SORT":Y1=4:GOTO 425
  30. 410  A$="SEARCH":Y1=5:GOTO 425
  31. 415  A$="PRINT":Y1=6:GOTO 425
  32. 420  A$="MAIN":Y1=1
  33. 425  IF SNEW=1 THEN GOSUB 5100:GOSUB 450
  34. 430  CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
  35. 435  A$="AD"+A$:RUN A$
  36. 450  GOSUB 2190:GOTO 600
  37. 500  CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
  38. 505  GOSUB 560
  39. 510  IF Y$="N" THEN 350 ELSE A$="E":GOSUB 2190
  40. 520  CLS:LOCATE 12,30:PRINT "   GOODBYE   ":SYSTEM
  41. 550  GOSUB 5100:Y1=2:GOSUB 600:RETURN 350
  42. 560  GOSUB 35040:DEF SEG=0: POKE 1050, PEEK(1052)
  43. 561  Y$=INKEY$:IF Y$="" THEN 561 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
  44. 563  IF Y$="N" OR Y$="Y" THEN RETURN ELSE 560
  45. 600  GOSUB 630:ADD=0:ED$=""
  46. 601  COLOR 3,0,1:LOCATE 12,22:PRINT "Do you want to create a backup file?":LOCATE 14,33:PRINT "<Y>es or <N>o.":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0
  47. 603  GOSUB 560
  48. 604  IF Y$="N" THEN CLS:RETURN ELSE CLOSE:CHAIN "ADFILES",10,ALL
  49. 630  CLS:LOCATE 25,10:COLOR 1,10,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1:RETURN
  50. 690  COLOR 3,0,1:PRINT TAB(10);"EDIT MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
  51. 700  PRINT:COLOR 14,0:A$=CHR$(218)+CHR$(196)+CHR$(191):B$=CHR$(179)+" "+CHR$(179):C$=CHR$(192)+CHR$(196)+CHR$(217)
  52. 710  PRINT "   ";CHR$(186);"     ";A$:PRINT "   ";CHR$(186);"     ";B$:PRINT "   ";CHR$(25);"     ";C$:COLOR 3,0
  53. 720  LOCATE 9,1:PRINT TAB(4);"U)PDATE file":PRINT TAB(4);"A)DD to file":PRINT TAB(4);"E)XAMINE and/or UPDATE NOTE keys"
  54. 722  COLOR 14,0:LOCATE 9,4:PRINT "U":LOCATE 10,4:PRINT "A":LOCATE 11,4:PRINT "E":COLOR 31,0:LOCATE 6,11:PRINT "?":LOCATE ,,0:COLOR 3,0
  55. 725  COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to Main menu"
  56. 726  COLOR 14,0:LOCATE 18,40:PRINT "     F2";:COLOR 3,0:PRINT " = Return to EDIT menu"
  57. 727  LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
  58. 728  LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
  59. 729  LOCATE 21,40:PRINT "     F9 = Save/continue"
  60. 730  LOCATE 22,40:PRINT "    F10 = HELP"
  61. 731  LOCATE 23,40:PRINT "Alt F10 = QUIT"
  62. 732  LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  ":RETURN
  63. 960  REM
  64. 965  IF ADD=999 THEN ADD=0:ED$=""
  65. 970   X1$="EDIT ":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(30):Q$=CHR$(27)
  66. 980  GOSUB 630
  67. 990  GOSUB 690
  68. 1033  DEF SEG=0: POKE 1050, PEEK(1052)
  69. 1035  Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1035 ELSE 1040
  70. 1040  IF LEN(Y$)=2 THEN 1055 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
  71. 1042  IF Y$="U" THEN 1090
  72. 1045  IF Y$="E" THEN 3000
  73. 1050  IF Y$="A" THEN 1320 ELSE GOSUB 35040:GOTO 1033
  74. 1055  IF ASC(RIGHT$(Y$,1))=68 THEN 30000
  75. 1060  IF ASC(RIGHT$(Y$,1))=113 THEN 500 ELSE 990
  76. 1090  ED$="CONT"
  77. 1100  MS=0:GOSUB 9000
  78. 1110  COLOR 3,0,1:LOCATE 1,1:PRINT "EDIT:  UPDATE ...  ":LOCATE 3,28 :COLOR 12,0:PRINT "ENTER:  SURNAME & ";ARR$:COLOR 3,0:LOCATE 5,13:PRINT  "(full name or any part starting from left most character)"
  79. 1115  LOCATE 4,18:PRINT "(Be sure the file has been sorted by SURNAME)"
  80. 1120  LOCATE 6,39:PRINT "OR":LOCATE 6,23:COLOR 12,0:PRINT "[!] & ";ARR$;" TO EXAMINE complete file":COLOR 3,0
  81. 1125  LOCATE 7,39:PRINT "OR":LOCATE 8,28:PRINT ARR$;"  return to EDIT menu"
  82. 1130  LOCATE 10,6:PRINT "If corrections are necessary, you must RENTER each entry completely!"
  83. 1140  LOCATE 12,10:PRINT "If you want to add to the notes, start the addition with [&]":LOCATE 13,10:PRINT "OR advance to the point where you want to insert or add using ";CHR$(26):LOCATE 14,10:PRINT "then type in new data."
  84. 1160  LOCATE 16,20:PRINT "The [@] character will erase the entry"
  85. 1170  COLOR 15,0:LOCATE 20,32: INPUT "SURNAME ... ",S$:MM=LEN(S$):IF MM=0 THEN 960
  86. 1180  IF NN=0 THEN 960:GOSUB 9000
  87. 1185  GOSUB 3500:GOSUB 5000
  88. 1186  GET #4,NN+1:K=VAL(V$(16)):K1=K:II=1:I1=0
  89. 1187  IF S$="!" THEN 1190 ELSE QK=ASC(LEFT$(S$,1)):IF QK>90 OR QK<65 THEN 1270 ELSE K=ZK(QK-64)
  90. 1188  IF K=0 THEN 1270
  91. 1190  LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0:I1=I1+1:TEST=0:GET #4, K
  92. 1195  IF S$="!" THEN 1220
  93. 1200  IF S$<>MID$(V$(2),5,MM) THEN 1245
  94. 1220  LOCATE 1,70:PRINT SPACE$(9):GOSUB 2550
  95. 1225  MS=1:IF FRE(1)<800 THEN CHAIN "adedit.bas",1230,ALL
  96. 1227  IF Y$="r" OR Y$="R" THEN 960
  97. 1230  IF Y$="I" THEN K=VAL(V$(15)) ELSE 1233
  98. 1232  IF II=1  THEN II=NN:GOTO 1250 ELSE II=II-1:GOTO 1190
  99. 1233  IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN K=VAL(V$(14)) ELSE 1235
  100. 1234  IF II=NN THEN II=1:GOTO 1250 ELSE II=II+1 :GOTO 1250
  101. 1235  IF Y$="G" THEN K=K1:II=1:GOTO 1190
  102. 1236  IF Y$="=" THEN GOSUB 1500:GOTO 1190
  103. 1238  IF Y$="-" THEN GOSUB 1400:GOTO 1225
  104. 1239  IF Y$="+" THEN GOSUB 1400:GOTO 1225
  105. 1240  IF Y$="O" THEN GET #4,K1:K=VAL(V$(15)):II=NN:GOTO 1190
  106. 1245  IF ZTEST=26 THEN K=VAL(V$(14)):GOTO 1255
  107. 1247  IF ASC(MID$(V$(2),5,1))<>QK THEN 1260 ELSE K=VAL(V$(14))
  108. 1250  IF S$="!" THEN 1190
  109. 1255  IF I1=NN THEN 1260 ELSE 1190
  110. 1260  IF MS=1 THEN 1280
  111. 1270  LOCATE 22,1:PRINT "Person is not in the address book. Try again.  Hit any key to continue."
  112. 1275  Y$=INKEY$:IF Y$="" THEN 1275 ELSE 1090
  113. 1280  CLS:LOCATE 12,25:PRINT "ANY MORE CHANGES?  <Y> or <N> ":COLOR 15,0:LOCATE 12,45:PRINT "Y":LOCATE 12,52:PRINT "N":COLOR 3,0:GOSUB 560
  114. 1285  IF Y$="N" THEN ED$="":GOTO 970
  115. 1290  IF Y$="Y" OR Y$="y" THEN 1090
  116. 1320  GOSUB 9000
  117. 1330  S$="":ED$="  ":ADD=999:I=NN+1:GOSUB 2780
  118. 1350  GOSUB 2230
  119. 1360  NN=I-1:ADD=0:GOSUB 5100:GOTO 970
  120. 1390  CLS
  121. 1400  IS=II:LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
  122. 1410  NII=ABS(NI):FOR NF = 1 TO NII
  123. 1415  DEF SEG=&H40:IF PEEK(&H17) AND 16 THEN 1470
  124. 1420  IF NI<0 OR Y$="-" THEN II=IS-NF:K=VAL(V$(15)):GET #4,K:GOTO 1425 ELSE K=VAL(V$(14)):GET #4,K:II=IS+NF
  125. 1425  IF II=<0 THEN II=NN+II
  126. 1426  IF II>NN THEN II=ABS(II-NN)
  127. 1430  GOSUB 2550:NEXT
  128. 1455  LOCATE 23,20:PRINT SPACE$(40)
  129. 1460  Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 2635
  130. 1470  LOCATE 23,20:PRINT SPACE$(40)
  131. 1480  Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 2635
  132. 1500  IF NUM=<0 OR NUM>NN THEN GOSUB 35040:LOCATE 23,20:PRINT "REENTER NUMBER BETWEEN 1 - ";NN;"  ";SPACE$(5):ELSE 1505
  133. 1501  GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:LOCATE 23,51:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223
  134. 1505  IF NUM=<0 OR NUM>NN THEN 1500 ELSE LOCATE 23,20:PRINT SPACE$(50)
  135. 1510  IF ABS(NUM-II)<10 AND NUM-II<0 THEN NZ=II-1:K=VAL(V$(15)):GOTO 1590
  136. 1515  IF NUM-II<10 AND NUM-II >=0 THEN NZ=II+1:K=VAL(V$(14)):LOCATE 23,20:PRINT SPACE$(50):GOTO 1550
  137. 1517  K=ZK(27):NZ=INT((NN/10)+0.5):IF NN<10*NZ THEN NZ=INT(NN/10)
  138. 1520  FOR IZ=1 TO 10:IF NUM=<IZ*NZ THEN K=ZK(IZ+26):NZ=(IZ-1)*NZ:IZ=10
  139. 1525  NEXT
  140. 1540  IF K=ZK(27) AND NZ=INT(NN/10) THEN K=ZK(36):NZ=10*NZ
  141. 1550  LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
  142. 1560  FOR II=NZ TO NUM-1 :GET #4,K:K=VAL(V$(14)):NEXT
  143. 1570  LOCATE 1,70:PRINT SPACE$(9)
  144. 1580  RETURN
  145. 1590  LOCATE 23,20:PRINT SPACE$(50)
  146. 1595  LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
  147. 1600  FOR II=NZ TO NUM+1 STEP -1:GET #4,K:K=VAL(V$(15)):NEXT
  148. 1610  LOCATE 1,70:PRINT SPACE$(9):RETURN
  149. 1940  IF ERL=4010 THEN CLOSE #2: I=1:CLS:LOCATE 10,16:COLOR 14,0:PRINT "The file containing keys used in NOTES is empty":LOCATE 18,30:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35010:COLOR 3,0 ELSE 1947
  150. 1941  Y$=INKEY$:IF Y$="" THEN 1941
  151. 1942  RESUME 350
  152. 1947  IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 7,1:LOCATE 1,1
  153. 1950  IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 15,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
  154. 1960  IF ERR = 61 THEN GOTO 390
  155. 1965  IF NN=0 AND ERL=325 THEN CLS:COLOR 0,7:LOCATE 10,33:PRINT "FILE IS EMPTY!":LOCATE 12,28:PRINT "RETURNING TO MAIN MENU.":FOR I= 1 TO 200:NEXT:COLOR 3,0:RUN"ADMAIN.BAS"
  156. 1990  RESUME 350
  157. 2120  REM         TEMPORARY FILE
  158. 2130  REM
  159. 2190  Y$=LEFT$(A$,1)
  160. 2191  OPEN FILM$ FOR OUTPUT AS #3
  161. 2192  WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
  162. 2193  FOR I= 1 TO 36:WRITE#3, ZK(I):NEXT:CLOSE #3
  163. 2195  RETURN
  164. 2200  REM
  165. 2210  REM           INPUT DATA
  166. 2220  REM
  167. 2230  REM
  168. 2245  GOSUB 9000:IF RIGHT$(B$(1),1)<>"__" THEN GOSUB 2910
  169. 2260  REM
  170. 2265  COLOR 3,0,1:LOCATE 1,1:PRINT "ENTER RECORD # ";:COLOR 11,0:PRINT I
  171. 2270  COLOR 3,0:LOCATE 3,1:PRINT "GREETING: (1=Dr. 2=Mr. 3=Mrs. 4=Ms. 5=Miss 6=Prof. 7 = NEW; 8=None): ";:COLOR 2,0:PRINT B$(13):LOCATE 3,68:COLOR 10,0:INPUT NK$:IF NK$<>"" AND INSTR(1,ST$,NK$)<>0 THEN RETURN
  172. 2275  NK=VAL(NK$):IF NK=0 THEN A12$=B$(13): GOTO 2410 ELSE 2280
  173. 2280  IF NK<7 THEN A12$=G$(NK):GOTO 2420
  174. 2285  IF NK=8 THEN A12$="":GOTO 2420
  175. 2290  IF (NK<=10 OR NK>66) THEN 2400
  176. 2300  NK1=VAL(LEFT$(NK$,1)):NK2=VAL(RIGHT$(NK$,1)):A12$=G$(NK1)+"& "+G$(NK2):GOTO 2420
  177. 2400  COLOR 3,0:LOCATE 3,1:PRINT STRING$(80,32):PRINT STRING$(30,32)
  178. 2405  LOCATE 3,1: PRINT "GREETING:         ";:COLOR 10,0:PRINT B$(13):COLOR 3,0:LOCATE 3,18:J=13:K=3:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN A12$=B$(13) ELSE A12$=C1$+" "
  179. 2410  IF RIGHT$(A12$,2)="@ " OR LEFT$(A12$,1)="_" THEN A12$=""
  180. 2420  D$(13)=A12$:COLOR 3,0:LOCATE 3,1: PRINT "GREETING:";SPACE$(71):IF ED$="CONT" THEN COLOR 2,0 ELSE COLOR 10,0
  181. 2425  LOCATE 3,18:PRINT D$(13)
  182. 2430  FOR J= 1 TO 11:L=W(J)
  183. 2434  IF J<=8 THEN JJ=J+3 ELSE JJ=J+4
  184. 2435  IF L>=6 AND L<=11 THEN DEF SEG = &H40:POKE &H17,&H40
  185. 2440  COLOR 3,0:LOCATE JJ,1: PRINT Q$(J);"  ";:COLOR 2,0:PRINT B$(J):LOCATE JJ,18:K=JJ:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN D$(L)=B$(J) ELSE D$(L)=C1$
  186. 2445  IF L>=6 AND L<=10 THEN DEF SEG = &H40:POKE &H17,&H0
  187. 2450  IF RIGHT$(D$(L),1)="@" OR RIGHT$(D$(L),2)="__" THEN D$(L)=""
  188. 2455  IF D$(L)<>"" AND INSTR(1,ST$,D$(L))<>0 THEN RETURN
  189. 2456  IF J=8 THEN LOCATE JJ+1,1:PRINT Q$(13)
  190. 2457  IF LEFT$(D$(L),3)="MM-" THEN D$(L)=""
  191. 2460  NEXT
  192. 2470  TEST=1
  193. 2520  COLOR 3,0:LOCATE 16,1: PRINT Q$(12);"  ";:COLOR 2,0:PRINT B$(12):COLOR 11,0:LOCATE 16,18:K=16:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN D$(9)=B$(12) ELSE D$(9)=C1$
  194. 2525  M=LEN(D$(9)):M=M-1
  195. 2526  IF LEFT$(D$(9),1)="&" THEN D$(9)=B$(12)+" "+RIGHT$(D$(9),M)
  196. 2530  IF RIGHT$(D$(9),1)="@" OR RIGHT$(D$(9),2)="__" THEN D$(9)=""
  197. 2533  GOTO 2540
  198. 2535  FOR J=J1 TO 12:L=W(J):D$(L)=B$(J):NEXT
  199. 2540  TEST=1:GOSUB 3500:GOSUB 5000:II=I
  200. 2550  IF ED$<>"CONT" THEN NN=I
  201. 2560  COLOR 3,0:LOCATE 1,15:PRINT II;SPACE$(3):IF (ED$="CONT" AND TEST=0) THEN GOSUB 5400 ELSE GOSUB 5300
  202. 2570  IF Y$="+" OR Y$="-" THEN RETURN
  203. 2635  COLOR 3,0:DEF SEG=0: POKE 1050, PEEK(1052):GOSUB 35040
  204. 2636  Y$=INKEY$:IF Y$="" THEN 2636
  205. 2637  DEF SEG=&H40:POKE &H17, 0
  206. 2638  IF LEN(Y$)=2 THEN Y$=RIGHT$(Y$,1)
  207. 2639  IF Y$="Y" OR Y$="y" THEN I=II:GOTO 2660
  208. 2640  IF S$<>"!" THEN 2655 ELSE IF Y$="r" OR Y$="R" THEN 2700
  209. 2641  IF Y$="=" THEN COLOR 14,0:LOCATE 23,20:PRINT "Jump to (1 - ";NN;" ) ... ";ARR$; ELSE 2643
  210. 2642  GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:GOTO 2700
  211. 2643  IF Y$="G" THEN JJ=I:I=0:GOTO 2700
  212. 2644  IF Y$="O" THEN JJ=I:I=NN-1:GOTO 2700
  213. 2645  IF Y$="I" THEN JJ=I:I=I-2:GOTO 2700
  214. 2646  IF Y$="-" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO back #? ";ARR$;:GOTO 2648
  215. 2647  IF Y$="+" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO forward #? ";ARR$; ELSE 2652
  216. 2648  GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32
  217. 2649  INPUT " ",NI:JJ=I:I=NI:NI=ABS(NI):COLOR 3,0
  218. 2650  IF ABS(NI)>NN THEN LOCATE 23,20:GOSUB 35030:PRINT "OUTSIDE DATA RANGE.  1 TO";NN;:FOR K=1 TO 900:NEXT:LOCATE 23,10:PRINT SPACE$(68):I=JJ:GOTO 2636
  219. 2651  DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:LOCATE 23,10:PRINT SPACE$(65):LOCATE 23,21:COLOR 0,7:PRINT "Hit <Scroll Lock> to stop at a RECORD.":COLOR 3,0:GOTO 2700
  220. 2652  IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN JJ=I:GOTO 2700 ELSE 2635
  221. 2655  IF Y$="N" OR Y$="n" THEN JJ=I:GOTO 2700 ELSE 2635
  222. 2660  IF ED$<>"CONT" OR TEST <>0 THEN FOR J= 1 TO 13:K=W(J):B$(J)=D$(K):NEXT:GOTO 2670
  223. 2665  FOR J = 1 TO 13:K=W(J):B$(J)=MID$(V$(K),5,VAL(V$(K))):NEXT
  224. 2670  GOSUB 9000:LOCATE 22,13
  225. 2680  PRINT "Enter corrections or ";ARR$;" if no corrections are necessary":IF ED$<>"CONT" THEN 2260 ELSE LOCATE 23,25:PRINT "Hit <End Key> to end correction"
  226. 2690  GOTO 2260
  227. 2700  IF (ED$="CONT" AND TEST=1) THEN Z(1)=VAL(V$(16)):Z(2)=VAL(V$(15)):Z(3)=VAL(V$(14)):GOSUB 5200:TEST=0
  228. 2710  IF RIGHT$(D$(8),2)="YY" THEN D$(8)=""
  229. 2740  IF ED$="CONT" THEN RETURN
  230. 2750  Z(1)=I:Z(2)=I-1:Z(3)=I+1:IF I=KNN THEN GOSUB 5500:GOTO 2755
  231. 2752  GOSUB 5200
  232. 2755  I=I+1:IF FRE(1)<1000 THEN CHAIN "adedit.bas",2775,ALL
  233. 2770  GOTO 2245
  234. 2775  GOSUB 6000:GOTO 1350
  235. 2780  GOSUB 2910
  236. 2790  PRINT "THE FILES ARE CURRENTLY SET UP TO RECEIVE AS FOLLOWS:  ":PRINT
  237. 2800  COLOR 14,0,1
  238. 2810  GOSUB 2850
  239. 2820  PRINT : PRINT "For GREETING you can combine TWO numbers (1-6).  EX: 23 = MR. and MRS.":PRINT TAB(14);"(Available:  any combination)
  240. 2825  PRINT :PRINT "Sort the Records by Surname after entering new records."
  241. 2830  PRINT:PRINT "To EXIT and RETURN to EDIT menu, Type `KEY F2' ":LOCATE ,29:COLOR 1,7,1:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35040
  242. 2831  Y$=INKEY$:IF Y$="" THEN 2831 ELSE RETURN
  243. 2840  PRINT "RECORD #:  ";I
  244. 2850  PRINT "GREETING: (1=Dr. 2=Mr. 3=Mrs. 4=Ms. 5=Miss 6=Prof. 7=Your own 8=None):   ";B12$
  245. 2860  PRINT "NAME:           ";B12$;B$(1);" ";B$(2)
  246. 2870  FOR J= 3 TO 8:PRINT Q$(J);B$(J):NEXT
  247. 2880  PRINT Q$(13)
  248. 2890  FOR J= 9 TO 12:PRINT Q$(J);B$(J):NEXT
  249. 2900  RETURN
  250. 2910  FOR IL = 1 TO 13:B$(IL)=STRING$(LS%(IL),95):NEXT:B$(11)="MM-DD-YY":B12$=B$(7):B$(13)=B12$:RETURN
  251. 3000  IF SNEW=1 THEN GOSUB 5100:GOSUB 450:RUN"adnote" ELSE RUN "adnote"
  252. 3500  GOSUB 9000
  253. 3510  COLOR 3,0,1:PRINT "RECORD #:  ":PRINT:PRINT "NAME:          ":FOR J= 3 TO 8:PRINT Q$(J):NEXT:PRINT Q$(13):FOR J= 9 TO 12:PRINT Q$(J):NEXT:RETURN
  254. 3520  LOCATE 1,15:PRINT SPACE$(50)
  255. 3530  FOR J= 2 TO 13:LOCATE 1+J,15:PRINT SPACE$(50):NEXT:RETURN
  256. 4000  FILN$ =FIL$+".NTE"
  257. 4005  IF NKEY$(1)="" OR NKEY$(1)=CHR$(15) THEN 4010 ELSE 4035
  258. 4010  OPEN FILN$ FOR INPUT AS #2
  259. 4030  FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
  260. 4035  NP=I-1:CLOSE #2:GOSUB 9000
  261. 4050  LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " =  ";:COLOR 14,0:PRINT NOTE$(I):NEXT
  262. 4086  LOCATE 20,28:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35030
  263. 4087  Y$=INKEY$:IF Y$="" THEN 4087
  264. 4090  RETURN 350
  265. 5000  REM
  266. 5010  COLOR 3,0:LOCATE 18,1:PRINT "Corrections?  <Y>es.":COLOR 14,0:LOCATE 18,16:PRINT "Y":COLOR 3,0
  267. 5020  IF S$="!" THEN LOCATE 19,15:PRINT "<PgDn> or <N>o - next record.":LOCATE 19,26:COLOR 14,0:PRINT "N" :LOCATE 19,16:PRINT "PgDn" ELSE LOCATE 19,15:PRINT "<N>o.":LOCATE 19,16:COLOR 14,0:PRINT "N"
  268. 5030  IF S$<> "!" THEN RETURN ELSE COLOR 3,0:LOCATE 20,15:PRINT "<PgUp> - previous record":LOCATE 21,15:PRINT "<+> Scan forward ":COLOR 14,0:LOCATE 20,16:PRINT "PgUp":LOCATE 21,16:PRINT "+"
  269. 5035  LOCATE 19,50:COLOR 3,0:PRINT "<Home> - First record.":LOCATE 19,51:COLOR 14,0:PRINT "Home" :COLOR 3,0:LOCATE 20,50:PRINT "<End> - Last record.":LOCATE 20,51:COLOR 14,0:PRINT "End"
  270. 5036  COLOR 3,0:LOCATE 21,50:PRINT "<-> Scan backward":LOCATE 21,51:COLOR 14,0:PRINT "-":COLOR 3,0
  271. 5038  COLOR 3,0:LOCATE 22,15:PRINT "<=> Jump ":LOCATE 22,16:COLOR 14,0:PRINT "=":COLOR 3,0
  272. 5040  LOCATE 22,50:PRINT "<";:COLOR 14,0:PRINT "R";:COLOR 3,0:PRINT "> Return to Menu";:COLOR 14,0:PRINT "?":COLOR 3,0:RETURN
  273. 5100  IF YNEW=1 THEN KSET=1:KEND=NN:KNN=1:GOTO 5103
  274. 5102  IF NN<KNN THEN RETURN
  275. 5103  LOCATE 1,60:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
  276. 5104  IF I=NN THEN 5135
  277. 5105  GET #4,KSET:LSET V$(15)=STR$(NN):LSET V$(14)=V$(14):LSET V$(16)=V$(16)
  278. 5110  FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,KSET
  279. 5115  GET #4,KEND:LSET V$(14)=STR$(KNN):LSET V$(15)=V$(15):LSET V$(16)=V$(16)
  280. 5120  FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,KEND
  281. 5125  GET #4,NN:LSET V$(14)=STR$(KSET):LSET V$(15)=V$(15):LSET V$(16)=V$(16)
  282. 5130  FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,NN
  283. 5135  FOR J=3 TO 13:LSET V$(J)="":NEXT
  284. 5140  NMID=(INT(NN/2+0.5)):LSET V$(14)=STR$(NN):LSET V$(15)=STR$(NMID):LSET V$(16)=STR$(KSET)
  285. 5145  LSET V$(1)=DATE$:LSET V$(2)=TIME$
  286. 5150  PUT #4,NN+1:YNEW=0:KEND=NN:KNN=NN+1:RETURN
  287. 5200  FOR J= 1 TO 13:D(J)=LEN(D$(J)):V1$(J)=STR$(D(J)):IF D(J)<10 THEN V1$(J)=" "+V1$(J)
  288. 5210  NEXT
  289. 5215  A$="@":SNEW =1
  290. 5220  FOR J=1 TO 13:LSET V$(J)=V1$(J)+A$+D$(J):NEXT
  291. 5230  LSET V$(14)=STR$(Z(3)):LSET V$(15)=STR$(Z(2)):LSET V$(16)=STR$(Z(1))
  292. 5240  PUT #4,Z(1)
  293. 5245  RETURN
  294. 5300  COLOR 11,0:LOCATE 3,15:PRINT SPACE$(50):LOCATE 3,15:PRINT D$(13);D$(1);" ";D$(2)
  295. 5310  FOR J= 3 TO 11:K=W(J):IF J>8 THEN JJ=J+2 ELSE JJ=J+1
  296. 5320  LOCATE JJ,15:PRINT D$(K);SPACE$(35-LEN(D$(K))):NEXT
  297. 5330  LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT D$(9):RETURN
  298. 5340  LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT MID$(V$(9),5,VAL(V$(9))):RETURN
  299. 5400  COLOR 11,0:LOCATE 3,15:PRINT SPACE$(50):LOCATE 3,15:PRINT MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
  300. 5410  FOR J= 3 TO 11:K=W(J):IF J>8 THEN JJ=J+2 ELSE JJ=J+1
  301. 5420  LOCATE JJ,15:PRINT MID$(V$(K),5,VAL(V$(K)));SPACE$(30):NEXT
  302. 5440  LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT MID$(V$(9),5,VAL(V$(9))):RETURN
  303. 5500  GET #4,KSET:LSET V$(15)=STR$(NN):LSET V$(14)=V$(14):LSET V$(16)=V$(16)
  304. 5510  FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,KSET
  305. 5520  FOR J= 1 TO 13:D(J)=LEN(D$(J)):V1$(J)=STR$(D(J)):IF D(J)<10 THEN V1$(J)=" "+V1$(J)
  306. 5525  NEXT
  307. 5530  A$="@":FOR J=1 TO 13:LSET V$(J)=V1$(J)+A$+D$(J):NEXT
  308. 5540  LSET V$(14)=STR$(Z(3)):LSET V$(15)=STR$(KEND):LSET V$(16)=STR$(Z(1))
  309. 5545  PUT #4,Z(1)
  310. 5550  SNEW=1:RETURN
  311. 6000  ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(9) GOSUB 550:KEY(9) ON
  312. 6010  ON KEY(1) GOSUB 420:ON KEY(2) GOSUB 350:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 400:KEY(3) ON:ON KEY(4) GOSUB 405:KEY(4) ON:ON KEY(5) GOSUB 410:ON KEY(6) GOSUB 415:KEY(6) ON:KEY(5) ON
  313. 6020  RETURN
  314. 9000  CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
  315. 10000  REM
  316. 10015  IF J=12 THEN 10030
  317. 10020  LOCATE K,18:COLOR 11,0:PRINT CHR$(34):LOCATE K,LS%(J)+19:PRINT CHR$(34):LOCATE K,19:GOTO 10035
  318. 10030  LOCATE K,18:COLOR 11,0:PRINT CHR$(34):LOCATE K+1,19:PRINT CHR$(34):LOCATE K,19
  319. 10035  IF ED$<>"CONT" THEN C$="":LSS%=LS%(J)+1:GOTO 10050
  320. 10040  C$=INKEY$:IF C$="" THEN 10040
  321. 10043  IF ASC(C$)=13 THEN C1$="":RETURN
  322. 10045  IF LEN(C$)=2 AND RIGHT$(C$,1)="O" THEN J1=J:RETURN 2535
  323. 10046  IF LEN(C$)=2 AND RIGHT$(C$,1)="M" THEN C$="":LOCATE K,19 ELSE IF LEN(C$)=2 THEN C$="":C1$="":RETURN ELSE PRINT C$;
  324. 10050  COLOR 10,0:LINE INPUT C1$:COLOR 11,0:IF LEN(C1$)>LS%(J) THEN GOSUB 10110:PRINT "Input exceeds ";LS%(J);" characters.  Enter [Y] to reenter OR ";ARR$;" to continue" ELSE GOTO 10080
  325. 10060  Y$=INKEY$:IF Y$="" THEN 10060
  326. 10070  IF Y$="y" OR Y$="Y" THEN LOCATE K+1,1:PRINT SPACE$(80):GOTO 10015
  327. 10075  LOCATE K+1,1:PRINT SPACE$(80)
  328. 10080  C1$=C$+C1$:RETURN
  329. 10110  FOR SD%=1 TO 3:SOUND 1000*SD%,1:NEXT:FOR SD%=3 TO 1 STEP -1:SOUND 1000*SD%,1:NEXT:RETURN
  330. 20000  GOSUB 2191:GOSUB 5100:N$=STR$(NN):A$="ADEDIT":CHAIN "ADNAME",20000,ALL
  331. 30000  CLS:LOCATE 25,25:COLOR 1,7,0:PRINT "INTEGRATED SOFTWARE SYSTEMS":COLOR 3,0:LOCATE 1,1
  332. 30010  OPEN "AD.HLP" AS #2 LEN=78
  333. 30020  FIELD #2, 78 AS A$
  334. 30030  I=1:M=1
  335. 30040  GET #2,I
  336. 30090  IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
  337. 30130  COLOR 0,7:LOCATE 24,27:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
  338. 30140  Y$=INKEY$:IF Y$="" THEN 30140
  339. 30150  CLOSE #2:GOTO 960
  340. 35000  IF SND$ ="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
  341. 35010  IF SND$ = "N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
  342. 35030  IF SND$ = "N" THEN RETURN ELSE SOUND 523.25,2:SOUND 30000,2:SOUND 523.25,2:RETURN
  343. 35040  IF SND$ = "N" THEN RETURN ELSE BEEP:RETURN
  344.